home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / NEW / A-Newest / Quittner.d64 / tpug info-3 < prev    next >
Text File  |  2009-01-03  |  6KB  |  63 lines

  1. ║CM:TPUG INFO-3
  2. ║PT5:CN1
  3. ├╧═╨╒╘┼╥ ├╧══╧─╧╥┼ 64 & ├64 ╔╬╞╧╥═┴╘╔╧╬-3:
  4. ║CN0:PT12
  5. ┼VERY ONE OF THE MEMORY LOCATIONS, CALLED "BYTES", CAN CONTAIN ANY NUMBER FROM ZERO TO 255, BUT ACTUALLY EVERY ONE OF THE BYTES IS COMPOSED OF 8 SWITCHES, CALLED "BITS" OR "FLAGS" THAT ARE COUPLED TOGETHER, WITH EACH OF THESE BITS HAVING A VALUE ATTACHED TO THEM; THESE VALUES ARE (POWERS OF 2) 1,2,4,8,16,32,64 AND 128. ┼ACH BIT CAN ONLY HAVE A 0 ("CLEAR") OR A 1 ("SET") IN THEM, AND IF ALL OF THE BITS ARE SET THEN THE TOTAL OF THEIR VALUE, THE VALUE OF THE BYTE, IS 255. 
  6.      ╘O FIND OUT WHICH NUMBER IS IN A GIVEN MEMORY LOCATION, FOR EXAMPLE IN 12345, TYPE, WITHOUT LINE NUMBER, ?PEEK(12345).
  7.      ╚ERE IS, FOR EXAMPLE, A ┬┴╙╔├ PROGRAM THAT WILL PROVIDE FOR ANY GIVEN TOTAL (0 TO 255) THE CONTENT (0 OR 1) OF EACH BIT:
  8.  
  9. 10 INPUT "TOTAL (0-255)";T:IFT<0 OR T>255 T╚ 10
  10. 20B7=INT(T/128):V7=B7*128:R=T-V7
  11. 30B6=INT(R/64):V6=B6*64:R=T-V7-V6
  12. 40B5=INT(R/32):V5=B5*32:R=T-V7-V6-V5
  13. 50B4=INT(R/16):V4=B4*16:R=T-V7-V6-V5-V4
  14. 60B3=INT(R/8):V3=B3*8:R=T-V7-V6-V5-V4-V3
  15. 70B2=INT(R/4):V2=B2*4:R=T-V7-V6-V5-V4-V3-V2
  16. 80B1=INT(R/2):V1=B1*2:B0=T-V7-V6-V5-V4-V3-V2-V1                           90?ST╥(B7)ST╥(B6)ST╥(B5)ST╥(B4)ST╥(B3)ST╥(B2)ST╥(B1)ST╥(B0):G╧10
  17.  
  18.      ╔NDIVIDUAL BITS CAN BE INTERROGATED AFTER RUNNING THIS PROGRAM. ╞OR EXAMPLE TO FIND OUT WHETHER BIT 7 (128) IS SET (1) OR IS CLEAR (0) TYPE ?B7.
  19.      ┴ SIMPLER WAY, WITHOUT USING THAT PROGRAM, IS TO USE INSTEAD THE ┬OOLEAN OPERATOR "AND". ╘YPE, FOR EXAMPLE, FOR LOCATION 12345 AND BIT 7 (128)
  20. ?(PEEK(12345)AND128)/128 
  21.      ╧R, FOR LOCATION 783 AND BIT 1 (2) TYPE
  22. ?(PEEK(783)AND2)/2 
  23.      ╘HE (VALUES) OF THE BITS, TO BE USED IN THE "AND" STATEMENTS, ARE: BIT 0 (1), 1 (2), 2 (4), 3 (8), 4 (16), 5 (32), 6 (64), AND 7 (128), WITH THE BIT VALUE OF THE BIT ALSO USED AT THE END OF THAT DIVISION.
  24.      ╠OCATION 783 IS VERY IMPORTANT BECAUSE ITS BITS, CALLED "FLAGS", ARE USED NOT ONLY BY THE ┬┴╙╔├ LANGUAGE, BUT ALSO IN MACHINE LANGUAGE, WHERE IT IS CALLED ".╨" AS PART OF THE .┴, .╪, .┘ AND .╨ FAMILY (780-783). ┬IT 0 (1) IS CALLED THE CARRY FLAG, BIT 1 (2) IS THE ZERO FLAG, BIT 2 (4) IS THE INTERRUPT DISABLE FLAG, BIT 3 (8) IS THE DECIMAL FLAG, BIT 4 (16) IS THE BREAK FLAG, BIT 5 (32) IS NOT USED, BIT 6 (64) IS THE OVERFLOW FLAG, AND BIT 7 (128) IS THE NEGATIVE FLAG. ╠OADING THE ACCUMULATOR OR ANY OTHER MEMORY LOCATION WITH ZERO SETS THE ZERO FLAG; PUTTING INSTEAD A VALUE BETWEEN 128 AND 255 INTO IT SETS THE NEGATIVE FLAG.
  25.  
  26.      ╘O USE A PRINTER AT LEAST ONE "OPEN" STATEMENT MUST BE ENTERED; ╔ OFTEN USE
  27. 4010 CLOSE5:OPEN5,4,5:CLOSE7:OPEN7,4,7: RETURN
  28.  
  29. ╘HE 4 IS THE DEVICE NUMBER (USUALLY 4 FOR PRINTERS), THE 2ND 5 OR 7 IS THE SECONDARY ADDRESS, TELLING THE ELECTRONIC BOX WITH ITS 8 SWITCHES (YOURS MAY BE DIFFERENT) ON IT, CALLED INTERFACE, THAT IS CONNECTED BETWEEN THE COMPUTER AND THE PRINTER HOW TO DO THINGS, AND THE FIRST 5 OR 7 IS THE FILE NUMBER, WHICH ╔ USUALLY MAKE EQUAL TO THE SECONDARY ADDRESS. ╔ USE 5 WHEN ╔ WANT THE INTERFACE WITHOUT LINE FEED TO PASS INTO THE PRINTER UNCHANGED WHAT COMES OUT OF THE COMPUTER (SUCH AS GIVING INSTRUCTIONS TO THE PRINTER), AND ╔ USE 7 WHEN ╔ WANT, WITH LINE FEEDS, THE INTERFACE TO TRANSLATE INTO THE ┴╙├╔╔ SYSTEM WHAT COMES OUT OF THE COMPUTER. ╞OR EXAMPLE USING 5, VALUE 65 IN MEMORY IS PRINTED OUT AS UPPER CASE ┴, WHILE, USING 7, THAT SAME MEMORY VALUE OF 65 IS PRINTED AS LOWER CASE A. ╚ERE IS A ┬┴╙╔├ PROGRAM TO SEE WHAT IS PRINTED:
  30. 10 CLOSE 5: OPEN 5,4,5: CLOSE7: OPEN7,4,7
  31. 20 F╧I=33 TO 255: P╥5,C╚(I);:N┼:P╥7
  32. 30 F╧I=33 TO 255: P╥7,C╚(I);:N┼:P╥7:END
  33.  
  34.      ╘O PRINT OUT THE CONTENTS OF MEMORY BETWEEN LIMITS 12345 AND 12355 ╔ WOULD USE 
  35. 10 CLOSE7: OPEN7,4,7
  36. 20 FOR I=12345 TO 12355:P╥7,P┼(I);:N┼:P╥7:END
  37.      OR, TO PRINT OUT A GIVEN NUMBER OF ITEMS, STARTING WITH 22222, ╔ WOULD USE
  38. 10 CLOSE7: OPEN7,4,7
  39. 20 FOR I=22222 TO I+20: P╥7,P┼(I);:N┼:P╥7:END
  40.  
  41.      ╒SING ¡╝MACHINE LANGUAGE╜╛ IS MORE DIFFICULT, AND IT SHOULD MAINLY BE USED FOR TASKS THAT INCLUDE A LOT OF REPETITION, WHERE THE GREATER SPEED OF MACHINE LANGUAGE IS IMPORTANT. ╔ USE ┬┴╙╔├ OTHERWISE.
  42.      ╘HERE ARE DIFFERENT OP-CODES FOR DIFFERENT USES OF, FOR EXAMPLE, LOADING THE CONTENTS OF A BYTE INTO THE ACCUMULATOR (╠─┴), WITH DIFFERENT SPEEDS IN TERMS OF COMPUTER CYCLES. ╘HE FASTEST (2 CYCLES) IS OP-CODE 169 WHICH HAS ONLY ONE OPERAND (THE NUMBER FOLLOWING THE OP-CODE). ╞OR EXAMPLE 169,123 PUTS THE NUMBER 123 INTO THE ACCUMULATOR (LOCATION 780). 3 CYCLES ARE NEEDED USING OP-CODE 165 WHICH ALSO HAS ONLY ONE OPERAND WHICH MUST BE BETWEEN 0 AND 255 (ZERO PAGE). ╞OR EXAMPLE, 165,123 PUTS THE CONTENT OF MEMORY LOCATION 123 INTO THE ACCUMULATOR. ╧P-CODE 173 REQUIRES 2 OPERANDS AND IT IS USED TO LOAD INTO THE ACCUMULATOR THE CONTENTS OF A MEMORY LOCATION THAT IS HIGHER THAN 255. ╔TS SPEED IS 4 CYCLES.
  43.      ╞OR EXAMPLE FOR LOCATION 12345 DIVIDE 12345 BY 256, GIVING 48.222656. ─ISCARD THE DECIMAL PART TO GET 48 WHICH WE CALL ╚. ╘HEN SUBTRACT ╚ TIMES 256 FROM 12345 TO GET ╠, WHICH GIVES 57 FOR ╠. ├HECKING, (╚ TIMES 256) PLUS ╠ SHOULD ALWAYS GIVE THE ORIGINAL NUMBER. ┬ECAUSE THE LOCATION OF THE BYTE WE WANT, 12345, IS ABOVE 255 THE "ABSOLUTE" OP-CODE IS 173, REQUIRING 2 OPERANDS, ╠ AND ╚, AFTER IT. ╒SING ┬┴╙╔├ TO LOAD THIS AND RUN IT, AND NOTHING ELSE, ╔ WOULD USE, FOR THIS EXAMPLE,
  44.  
  45. 10 FOR I=820 TO 1023: READ A:IF A>255 THEN SYS820: END
  46. 20 DATA 173,57,48, 96, 999
  47.      ╘HIS SHOULD GIVE THE SAME RESULT AS, USING ONLY ┬┴╙╔├,
  48. 10 PRINT P┼(12345):REM ORIGINAL BYTE CONTENT
  49. 20 PRINT P┼(780):REM ACCUMULATOR (.┴) CONTENT
  50.      ╒SING ONLY ┬┴╙╔├ THIS COULD HAVE BEEN DONE BY
  51.  
  52. 10 A=P┼(12345)
  53. 20 P╧780,A
  54. 30 ?P┼(12345)
  55. 40 ?P┼(780):END
  56.  
  57.      ╧THER OP-CODES EXIST TO LOAD THE ACCUMULATOR (╠─┴) WITH SPEEDS 5 OR 6; THESE ARE INVOLVING .╪ OR .┘ AS ADDITIONS, OR USING INDIRECT MEANS, BY FIRST LOOKING AT THE GIVEN ADDRESS AND LOADING THE CONTENT OF ITS CONTENT INTO THE ACCUMULATOR .┴ WITH .╪ OR .┘ INVOLVED TOO AS ADDITIONS.
  58.  
  59.      ╘O CHECK ON SPEED IN TERMS OF "╩IFFIES" USE BYTES 160-162. ╘HERE ARE 60 ╩IFFIES PER SECOND, WITH THIS SOFTWARE CLOCK RESET TO ZERO AFTER 24 HOURS. ╙EE ┬┴╙╔├ RESERVED VARIABLES TI AND TI$.
  60.  
  61. ║PT20:CN1
  62.    ┬Y ╩OE ╤UITTNER, ╘╨╒╟, ╩UNE 21, 2007
  63.